"""
启动与停止线程

问题：
    你要为需要并发执行的代码创建/销毁线程。
解决方案：
    threading 库可以在单独的线程中执行任何的在 Python 中可以调用的对象。
"""

import time
from threading import Thread


class GetHtmlTask:
    def __init__(self):
        self._running = True

    def terminate(self):
        self._running = False

    def run(self, n):
        while self._running and n > 0:
            print("GetHtmlTask ", n)
            n -= 1
            time.sleep(3)


def use_threading():
    task = GetHtmlTask()
    t = Thread(target=task.run, args=(3,))
    # 启动线程
    t.start()
    # 终止任务
    # task.terminate()
    # 将线程加入到当前线程，并等待它终止
    t.join()
    # 输出结果：
    """
    GetHtmlTask  3
    GetHtmlTask  2
    GetHtmlTask  1
    """


if __name__ == '__main__':
    use_threading()
